/** 创建 bflow 数据库*/
CREATE DATABASE IF NOT EXISTS bflow DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
USE `bflow`;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;


DROP TABLE IF EXISTS `BFLOW_DEFINE_ACT`;
CREATE TABLE `BFLOW_DEFINE_ACT` (
  `ID_` varchar(32) NOT NULL COMMENT '活动ID',
  `KEY_` varchar(32) NOT NULL COMMENT '活动KEY',
  `NAME_` varchar(32) NOT NULL COMMENT '活动名称',
  `DESC_` varchar(200) DEFAULT NULL COMMENT '描述',
  `ASSIGNEE_TYPE` varchar(32) NOT NULL COMMENT '参与者类型',
  `ASSIGNEE` varchar(32) DEFAULT NULL COMMENT '参与者标识',
  `STATUS` char(1) DEFAULT NULL COMMENT '状态：0-不可用；1-可用；',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='活动节点定义';

-- ----------------------------
-- Records of BFLOW_DEFINE_ACT
-- ----------------------------
BEGIN;
INSERT INTO `BFLOW_DEFINE_ACT` VALUES ('0001', 'def_user_audit', '默认-用户审批', '需动态传值', 'ASSIGN_USER_ID', '', '1', '2018-12-29 15:44:41', NULL);
INSERT INTO `BFLOW_DEFINE_ACT` VALUES ('0002', 'assign', '分派任务', '客服经理-分派任务', 'ROLE_KEY', 'pm_manger', '1', '2018-12-18 17:35:27', '2019-01-07 18:03:13');
INSERT INTO `BFLOW_DEFINE_ACT` VALUES ('0003', 'valid', '客服-接收验证任务', '客服-接收验证任务', 'ASSIGN_USER_ID', '', '1', '2018-12-18 17:37:03', NULL);
INSERT INTO `BFLOW_DEFINE_ACT` VALUES ('0004', 'audit', '经理-审批', '经理-审批', 'ROLE_KEY', 'pm_manger', '1', '2018-12-18 17:49:47', '2019-01-07 18:03:32');
COMMIT;


DROP TABLE IF EXISTS `BFLOW_DEFINE_ACT_ROUTE`;
CREATE TABLE `BFLOW_DEFINE_ACT_ROUTE` (
  `ID_` varchar(32) NOT NULL COMMENT 'ID',
  `PROC_ID` varchar(32) NOT NULL COMMENT '流程ID',
  `ACT_SORT` INT(11) NOT NULL COMMENT '活动排序号',
  `ACT_ID` varchar(32) NOT NULL COMMENT '活动ID',
  `COND_KEY` varchar(32) DEFAULT NULL COMMENT '条件标识',
  `COND_DESC` varchar(32) NOT NULL COMMENT '条件说明',
  `NEXT_ACT_ID` varchar(32) DEFAULT NULL COMMENT '下个活动ID',
  `CALLBACK_BEFORE_ACT` varchar(64) DEFAULT NULL COMMENT '活动前回调',
  `CALLBACK_AFTER_ACT` varchar(64) DEFAULT NULL COMMENT '活动后回调',
  `STATUS` char(1) DEFAULT NULL COMMENT '状态：0-不可用；1-可用；',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  `REMARK` varchar(256) DEFAULT NULL COMMENT '备注',
  `VERSION_` INT(11) DEFAULT 1 COMMENT '版本号',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='活动路由';

-- ----------------------------
-- Table structure for BFLOW_DEFINE_PROCESS
-- ----------------------------
DROP TABLE IF EXISTS `BFLOW_DEFINE_PROCESS`;
CREATE TABLE `BFLOW_DEFINE_PROCESS` (
  `ID_` varchar(32) NOT NULL COMMENT '流程定义ID',
  `KEY_` varchar(32) NOT NULL COMMENT '流程KEY',
  `NAME_` varchar(50) NOT NULL COMMENT '流程名称',
  `DESC_` varchar(128) DEFAULT NULL COMMENT '流程描述',
  `TYPE_` VARCHAR(3) DEFAULT 'def' COMMENT '类型: def=默认, set=自定义',
  `ACT_SET` varchar(256) NOT NULL COMMENT '活动集合',
  `ACT_ASSIGNEE_SET` varchar(256) DEFAULT NULL COMMENT '活动参与者集合',
  `COPY_TO_INTERVAL_TYPE` varchar(10) DEFAULT NULL COMMENT '抄送间隔类型: start=开始、end=结束、endPass=通过结束、endNoPass=不通过结束、ever=永远',
  `COPY_TO` varchar(256) DEFAULT NULL COMMENT '抄送人',
  `START_ACT_ID` varchar(32) NOT NULL COMMENT '开始活动',
  `STATUS` char(1) DEFAULT NULL COMMENT '状态：0-不可用；1-可用；',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  `VERSION_` INT(11) DEFAULT 1 COMMENT '版本号',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程定义';


DROP TABLE IF EXISTS `BFLOW_DEFINE_PROCESS_DRAW`;
CREATE TABLE `BFLOW_DEFINE_PROCESS_DRAW` (
  `ID_` BIGINT(20) NOT NULL COMMENT 'ID',
  `PROC_ID` varchar(32) NOT NULL COMMENT '流程定义ID',
  `TITLE_` varchar(32) NOT NULL COMMENT '说明',
  `DRAW_KEY` varchar(32) NOT NULL COMMENT '图画KEY',
  `JSON_` varchar(2048) DEFAULT NULL COMMENT 'JSON',
  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  `DEL_FLAG` char(1) DEFAULT 1 COMMENT '删除标记：0-已删除；1-有效',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程定义图画';


-- ----------------------------
-- Table structure for BFLOW_RUN_INSTANCE
-- ----------------------------
DROP TABLE IF EXISTS `BFLOW_RUN_INSTANCE`;
CREATE TABLE `BFLOW_RUN_INSTANCE` (
  `ID_` varchar(32) NOT NULL COMMENT '流程实例ID',
  `PROC_KEY` varchar(32) NOT NULL COMMENT '流程定义ID',
  `BUSI_KEY` varchar(32) NOT NULL COMMENT '业务KEY',
  `BUSI_ID` varchar(32) NOT NULL COMMENT '业务ID',
  `BUSI_SUB_ID` varchar(32) DEFAULT NULL COMMENT '子业务ID',
  `START_UID` varchar(32) NOT NULL COMMENT '发起人ID',
  `START_UNAME` varchar(32) NOT NULL COMMENT '发起人',
  `EXT_BIGINT_1` bigint(20) DEFAULT NULL,
  `EXT_BIGINT_2` bigint(20) DEFAULT NULL,
  `EXT_BIGINT_3` bigint(20) DEFAULT NULL,
  `EXT_BIGINT_4` bigint(20) DEFAULT NULL,
  `EXT_VARCHAR_1` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_2` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_3` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_4` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_5` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_6` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_7` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_8` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_9` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_10` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_11` varchar(255) DEFAULT NULL,
  `EXT_VARCHAR_12` varchar(255) DEFAULT NULL,
  `EXT_DATETIME_1` datetime DEFAULT NULL,
  `EXT_DATETIME_2` datetime DEFAULT NULL,
  `EXT_DATETIME_3` datetime DEFAULT NULL,
  `EXT_DATETIME_4` datetime DEFAULT NULL,
  `EXT_NUMERIC_1` decimal(20,2) DEFAULT NULL,
  `EXT_NUMERIC_2` decimal(20,2) DEFAULT NULL,
  `STATUS` varchar(10) DEFAULT 'run' COMMENT '流程状态：finish=已完成；run=执行中; cancel=撤销',
  `END_TIME` datetime DEFAULT NULL COMMENT '流程结束时间',
  `REMARKS` varchar(100) DEFAULT NULL COMMENT '备注',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  `VERSION_` INT(11) DEFAULT 1 COMMENT '版本号',
  `FINAL_CONCLUSION` INT(11) varchar(32) COMMENT '最终结论',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程实例';

-- ----------------------------
-- Table structure for BFLOW_RUN_TASK
-- ----------------------------
DROP TABLE IF EXISTS `BFLOW_RUN_TASK`;
CREATE TABLE `BFLOW_RUN_TASK` (
  `ID_` varchar(32) NOT NULL COMMENT 'ID',
  `PROC_ID` varchar(32) NOT NULL COMMENT '流程定义ID',
  `INSTANCE_ID` varchar(32) NOT NULL COMMENT '流程实例ID',
  `ACT_ID` varchar(32) NOT NULL COMMENT '活动ID_排序号',
  `USER_KEY` varchar(32) NOT NULL COMMENT '代办者标识',
  `USER_NAME` varchar(32) DEFAULT NULL COMMENT '代办者名称',
  `SECOND_USER_ID` varchar(32) DEFAULT NULL COMMENT '委托人(二次代办人)',
  `SECOND_USER_NAME` varchar(32) DEFAULT NULL COMMENT '委托人名称(二次代办人)',
  `STATUS` char(1) DEFAULT 0 COMMENT '状态：0-待处理；1-已处理；',
  `CREATE_UID` varchar(32) DEFAULT NULL COMMENT '创建者ID',
  `CREATE_UNAME` varchar(32) DEFAULT NULL COMMENT '创建者姓名',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `FINISH_TIME` datetime DEFAULT NULL COMMENT '完成时间',
  `DEL_FLAG` char(1) DEFAULT 1 COMMENT '删除标记：0-已删除；1-有效；',
  `VERSION_` INT(11) DEFAULT 1 COMMENT '版本号',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务';


-- ----------------------------
-- Table structure for BFLOW_RUN_RECORD
-- ----------------------------
DROP TABLE IF EXISTS `BFLOW_RUN_RECORD`;
CREATE TABLE `BFLOW_RUN_RECORD` (
  `ID_` varchar(32) NOT NULL COMMENT '记录ID',
  `INSTANCE_ID` varchar(32) NOT NULL COMMENT '流程实例ID',
  `TASK_ID` varchar(32) DEFAULT NULL COMMENT '任务ID',
  `LAST_ACT_ID` varchar(32) DEFAULT NULL COMMENT '上个活动ID',
  `CUR_ACT_ID` varchar(32) DEFAULT NULL COMMENT '当前活动ID',
  `CREATE_UID` varchar(32) DEFAULT NULL COMMENT '操作者ID',
  `CREATE_UNAME` varchar(32) DEFAULT NULL COMMENT '操作姓名',
  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
  `FLAG_` varchar(12) DEFAULT NULL COMMENT '结论',
  `REMARKS` varchar(100) DEFAULT NULL COMMENT '备注',
  `EXT_JSON` varchar(128) DEFAULT NULL COMMENT '扩展JSON',
  `DEL_FLAG` char(1) DEFAULT 1 COMMENT '删除标记：0-已删除；1-有效；',
  `VERSION_` INT(11) DEFAULT 1 COMMENT '版本号',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程记录';


DROP TABLE IF EXISTS `BFLOW_CALLBACK_RECORD`;
CREATE TABLE `BFLOW_CALLBACK_RECORD` (
  `ID_` BIGINT(20) NOT NULL COMMENT 'ID',
  `INSTANCE_ID` varchar(32) NOT NULL COMMENT '流程实例ID',
  `TASK_ID` varchar(32) DEFAULT NULL COMMENT '任务ID',
  `ACT_ID` varchar(32) DEFAULT NULL COMMENT '活动ID',
  `TITLE_` varchar(32) NOT NULL COMMENT '标题',
  `BUSI_KEY` varchar(32) NOT NULL COMMENT '业务KEY',
  `BUSI_ID` varchar(32) NOT NULL COMMENT '业务ID',
  `PARAM_VALS` varchar(512) NOT NULL COMMENT '参数值',
  `CREATE_UID` varchar(32) DEFAULT NULL COMMENT '操作者ID',
  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
  `UPDATE_UID` varchar(32) DEFAULT NULL COMMENT '更新者ID',
  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
  `STATUS_` char(1) DEFAULT 1 COMMENT '状态：0=失败、1=成功、2=已忽略',
  `FAIL_MSG` varchar(512) DEFAULT NULL COMMENT '失败消息',
  PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程回调记录';

